close all;
clear all;
clc
path = ('D:\a\毕设参考资料\肌电信号优化'); 
cd(path); 

%MVIC:肌肉等长收缩时的肌电最大值
%%以径前肌（TA）的MVC(做标准化)以及其运动EMG为例；
fs = 1000; %采样频率(Hz); 
RAW_EMG= xlsread('raw.csv','A4:A29423');  %TA MVC, EMG信号为截取的示例所以并没有按照常规格式（.c3d或者.csv）,简单粗暴的储存;
NEW_EMG= xlsread('new.csv','A5837:A35256');  %TA emg, MVC测量采样时间不等长，无法和其他信号放进矩阵，分开读;
RAW_EMG(isinf(RAW_EMG)) = 0;
NEW_EMG(isinf(NEW_EMG)) = 0;
RAW_EMG(isnan(RAW_EMG)) = 0;
NEW_EMG(isnan(NEW_EMG)) = 0;
%% 用上面的函数处理TA的MVC和运动过程的EMG，用dual-pass 2nd order butterworth filter,lowpass cutoff of 6Hz。
le_RAW = processemg(RAW_EMG,fs,6,2); % linear envelop the TA during mvc.
le_NEW = processemg(NEW_EMG,fs,6,2); % linear envelop the TA during squat.

%% 用Matlab的built-in函数max，找到线性包络后TA的MVC里的最大值，用于百分比化在深蹲活动中TA的肌电信号，以方便量化比较。
m_RAW = max(le_RAW);                  % find the max contraction of the TA muscle.
perc_RAW = (le_RAW/m_RAW);% MVC % 可以自行尝试plot出来如下图
m_NEW =max(le_NEW);
perc_NEW = (le_NEW/m_RAW);
t = 0:1/fs:length(RAW_EMG)*1/fs-1/fs;
figure();
plot(t,perc_RAW);
hold on;
plot(t,perc_NEW);
%19920~29420
figure();
t1 = 0:1/fs:9.499;
sub_R = perc_RAW(19921:29420);
sub_N = perc_NEW(19921:29420);
plot(t1,sub_R);
hold on;
plot(t1,sub_N);
title('穿戴外骨骼前后肌电信号MVC%对比');
legend('未穿戴外骨骼','穿戴外骨骼');
xlabel('时间/s','Fontsize',12);
ylabel('MVC/%','Fontsize',12);

